package com.cskaoyan.javase.oop1._16access._0introduction;

// 默认权限的class在不同包下,不能导包,也不能使用,因为没有访问权限
// import com.cskaoyan.javase.oop1._16access._1clazz.A;

/**
 * 访问权限控制符：
 *      在Java语言中，一切事物（类和类的所有成员）都具有(或显示定义或隐式定义的)访问权限，而这种语言层面的访问权限控制，是由访问权限修饰符实现的。
 *
 * Java的访问权限的级别，是依赖包（package）来实现的。
 * Java的访问权限级别共分为以下四个级别，访问权限从严格到宽松顺序为：
 *      1.只能够在同一类中能够访问，私有的，外面谁都不能用。(最严格的)
 *          它对应关键字: private
 *          表示仅在类中可以被使用!离开这个类,都不可用了.
 *
 *      2.同一包中的子类或者其它类能够访问，同包中都可以使用。
 *          注意它不对应任何关键字,而是一种隐式定义的访问权限
 *          只要在写访问权限修饰符的位置什么都不写就可以了
 *          所以它也叫"缺省的"访问权限,或者叫"默认的"访问权限
 *          都是表示同包下可以访问
 *
 *      3.不同包的子类能够访问。
 *          注意,子类是继承的概念,这里我们先跳过这个访问级别,明天再讲
 *          它对应关键字: protected,受保护的访问权限
 *
 *      4.不同包的其他类能够访问。
 *          说明可以随便访问,在整个module下都能够任意访问
 *          对应关键字: public
 *          public实际上没有做访问权限控制,相当于没有控制权限,随便访问
 *
 * 当然以上四种访问级别,在修饰不同结构时,可用的是不同的:
 *      1.修饰类(接口,枚举,注解等)这种引用数据类型结构,
 *          如果是单独定义的一个类
 *          只能用两种访问级别:
 *              1.public
 *              2.(缺省的)默认的访问权限
 *
 *      2.修饰类中成员和构造器,四种访问级别皆可用
 *
 *
 * @since 16:16
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // A a = new A();
    }
}
